import java.util.Scanner;
public class Test {
    public static void main(String[] args) {

    }
    public static void main2(String[] args) {
        //数组
        //数组的创建 new 数据类型[]{值}/new 数组对象
        //1.精简直接创建法
        int[] array = {1,2,3,4,5};
        //2.完整直接创建法
        int[] array1 = new int[]{1,2,3,4,5};
        //3.动态初始化创建法
        int[] array2 = new int[5];//默认数组中值为0
        //初始化：静态初始化(直接进行赋值，根据值个数判断) 动态初始化(直接确定数组大小)
        //数组的使用 求数组长度使用引用.length
        //引用指向对象
        //可以使用下标访问数组
        //防止数组越界
        //局部数组都需要初始化
    }

    public static void func(int num) {
        if(num < 10) {
            System.out.print(num + " ");
            return ;
        }
        func(num / 10);
        System.out.print(num % 10 + " ");
    }

    public static int sum(int num) {
        if(num == 1) {
            return 1;
        }

        return num + sum(num - 1);
    }
    //1729之和
    public static int func1(int num) {
        if(num < 10) {
            return num;
        }
        //  ret = 个位数 + 递归值
        return num % 10+ func1(num / 10);
    }
    //斐波那契数列(递归)
    public static int fib(int num) {
        if(num == 1 || num == 2) {
            return 1;
        }

        return fib(num - 1) + fib(num - 2);
    }
    //汉诺塔问题...
    public  static void hanoi(int num,char pos1,char pos2,char pos3) {
        if(num == 1) {//初始条件，结束条件，当第一个柱子只有一个时，相当于完成了其他替换，放到第三根柱子即可
            move(pos1,pos3);
            return;
        }
        //首先 把 pos1上面n - 1个圆盘 通过 pos3 挪到 pos2
        hanoi(num - 1,pos1,pos3,pos2);
        //把pos1最后一个挪到pos3
        move(pos1,pos3);
        //pos2再通过pos1把上面n-1个圆盘挪到pos3上
        hanoi(num - 1,pos2,pos1,pos3);
    }

    public static void move(char pos1,char pos3) {//当一个柱子为空，一个柱子只有一个时，进行移动
        System.out.print(pos1 + "->" + pos3 + " ");
    }
    public static void main1(String[] args) {
        //递归
        //正序打印1234
        //func(1234);
        //System.out.println(sum(20));
        //System.out.println(func1(1234));
        //System.out.println(fib(10));
        hanoi(3,'A','B','C');
    }
}
